Field of the Invention
The present invention relates to processing executed by an information processing apparatus such as a mobile terminal that operates as an external device for an image output apparatus, for example, a printer.
Description of the Related Art
In recent years, multi-function mobile terminals (to be referred to as mobile computers hereinafter) incorporating a camera function have explosively become widespread, and far surpass digital cameras and conventional personal computers (to be referred to as PCs hereinafter) in sales.
Such mobile computer is basically formed from three elements, that is, hardware as the computer itself, an operating system (to be referred to as an OS hereinafter) operating on the hardware, and an application operating on the OS. By using the application, the user can use a function such as a map, mail, or browsing of a Web site on the Internet.
As examples of the form of such application operating on the mobile computer, there are mainly two application forms, that is, a native application and Web application. The features of each application form will be explained below.
The native application is developed by using a development environment and development language which are prepared for each OS. For example, the C/C++ language is used on an OS provided by company A, the Java® language is used on an OS provided by company B, and a different development language is used on an OS provided by company C. In general, the native application is compiled in advance in each development environment, and converted from a so-called high-level language understandable by a human into instruction sets such as an assembler interpretable by the CPU of the computer. Thus, the ordinary native application has an advantage that it is possible to perform an operation at high speed since the CPU directly interprets instructions.
On the other hand, the Web application indicates an application operating on a Web browser which is normally incorporated in an OS on each computer in recent years. The application is generally developed by using a language such as HTML5, CSS, or JavaScript® so that the Web browser can interpret the application. These languages are Web standard languages. Therefore, if a Web application is described using the Web standard language, it can operate in any environment where the Web browser operates.
Recently, various kinds of OSs are used as the mobile computers have become widespread. Hence, an important challenge in software development is how to develop applications that operate on the OSs in a short time and offer them to users speedily.
To solve this problem, a method called cross development is used. Cross development is a method of developing most part of an application using a common program language usable across various OSs. Because of use of the common program language, this method can largely decrease the number of man-hours in development as compared to a case where applications are developed individually for the OSs, and is known as an effective application development method.
Hence, the Web application is probably a method of solving the above-described problem. However, the Web application operates on the browser and cannot therefore be distributed from application stores run by vendors as a native application. For this reason, many developers desire a cross development method in a native application style that can be distributed from the stores.
As one of cross development methods capable of store distribution, a hybrid application as described in Japanese Patent Laid-Open No. 2013-080470 has received attention. In the hybrid application, the application itself is distributed to users as the above-described native application. All or most of user interfaces (UIs) in the hybrid application are described in a so-called Web standard language such as HTML5, CSS, or JavaScript. That is, one application includes a native layer and a script layer using a Web standard language. When such a configuration is employed, it is possible to develop software that makes use of both the advantage of the native application and that of the Web application.
However, when applying the above-described hybrid application to a print application to print a photo or document, the following problems arise.
In a normal hybrid application, a UI portion is described in a Web standard language and held in the application as text data. This text data is called a script. This script is input to an engine used by the OS to interpret and execute held scripts when the application is activated. As a result, the UI is displayed on the screen of the mobile computer so as to be operable by the user. Here, this engine is called an interpreter.
In a photo print application, for example, a print target photo is drawn on the UI. The software needs to be designed and developed so as to allow the user to superimpose date information such as a shooting date/time and a stamp such as a pictorial symbol on the photo and print the result. In the hybrid application, drawing of print content such as date information and a stamp is also described using the Web standard language. One of the candidates is SVG (Scalable Vector Graphics). The following is a simple example of image drawing by SVG.
<?xml version=“1.0” standalone=“no” ?><!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 20010904//EN”“http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd”><svg width=“12cm” height=“12cm”xmlns=“http://www.w3.org/2000/svg”xmlns:xlink=“http://www.w3.org/1999/xlink”><image id=“img01” xlink:href=“IMG_0001.JPG” x=“48”y=“33” width=“215” height=“148”/><image id=“img02” xlink:href =“IMG_0002.JPG” x=“272”y=“33” width=“216” height=“148”/></svg>
In the above example, two images having predetermined sizes (widths and heights) are drawn at predetermined positions (x, y) in predetermined regions (12 cm square), respectively. Note that in the above example, a description of a portion to include an SVG script in HTML5 is omitted.
To render print content described in SVG, it needs to be converted into image data (so-called bitmap data) generally having a high resolution, which is requested by the print engine of the printer. This processing is called rendering processing.
Since the display state and the print state of print content are normally desirably completely identical, interpretation and rendering of the content are desirably performed by the same interpreter. To print, the print content is rendered using the interpreter, and image data of the rendering result is obtained and transmitted to the printer in a predetermined format.
However, the following problems arise when executing the processing.
In a case where print content described in SVG is rendered using an interpreter held by the OS, as described above, the image can be displayed, but image data corresponding to the image cannot be obtained. At present, in a case where an interpreter held by each OS generates image data from a rendering result of SVG, the image data is used only for display.
Hence, conventionally, even though an interpreter held by an OS renders print content described in SVG, the image cannot be printed by a printer. As a result, it may be impossible to print using the form of the above-described hybrid application.